package sicau.car.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * @Author ITcz
 * @Data 2021-03-26 - 18:14
 */
/**
*  解决跨域问题
* */
@Configuration
public class CorsConfig {
    public CorsConfig(){

    }
    @Bean
    public CorsFilter corsFilter(){
        //1添加cors配置信息
        CorsConfiguration config = new CorsConfiguration();
        //生成环境如果非开放服务的时候指定相关跨域地址
        config.addAllowedOrigin("*");
        //是否发送cookie消息
        config.setAllowCredentials(true);
        //设置允许的header
        config.addAllowedHeader("*");
        //可以指定POST、GET、OPTION、DELETE、PUT等，开发前请和运维同事沟通，看相关公司安全策略是否允许
        config.addAllowedMethod("*");
        //支持跨域上传文件
        config.setAllowCredentials(true);
        config.setMaxAge(3600L);
        //2、为url添加映射路径
        UrlBasedCorsConfigurationSource corsSource = new UrlBasedCorsConfigurationSource();
        corsSource.registerCorsConfiguration("/**",config);

        //3、返回重新定义的
        return new CorsFilter(corsSource);
    }
}
